<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<script>
    // 包装对象 ： 简单数据类型 在调用方法的时候 会 被包装成对象 ，调用完毕之后 这个包装对象会被销毁
    // var str = "abcdefg";
    // var arr = [1,2,3,4];

    // arr.push("111");
    // console.log(arr);

    // var obj = {
    //     name:"123"
    // }
    // console.log(obj);

    // var arr = {
    //     push:function(){
    //         console.log("调用了push方法");
    //     }
    // }

    // arr.push();


    // 简单数据类型 在调用方法过程中 系统底层会自动把 数据包装成一个对象
    // var str = "abcdefg";
// var str = new String("abcdefg");
// console.log(str);
//     console.log(str);
//    var res =  str.split("");
//    console.log(res);
// 包装对象 1.字符串 2.布尔值 3.数字类型
// 非包装对象 undefined  null
//   undefined.toString()
// null.toString();

function mysplit(str){
    // 自动把str包装成对象的 字符串；
    // 第一步 会把数据包装成对象
    var strobj = new String(str);
    //第二步：  调取对象里的方法
   var arr =  strobj.split("");
    // 第三步 ： 把生成的字符串对象销毁   
   return arr; // 结果返还出来
}
// var arr =  mysplit(str);
// console.log(arr);



// 把自己的方法 注入到预定义里
// var str = "abcdefg";
// function mysplit(){
//     // 自动把str包装成对象的 字符串；
//     // 第一步 会把数据包装成对象
//     // 这个this 哪个字符串 调用这个myspit方法 就指向哪个字符串；
//     var strobj = new String(this);
//     //第二步：  调取对象里的方法
//    var arr =  strobj.split("");
//     // 第三步 ： 把生成的字符串对象销毁   
//    return arr; // 结果返还出来
// }
// // 把方法注入到 字符串的原型中，那么所有的字符串都可以调用这个方法
// String.prototype.mysplit = mysplit;
// var mystr = "123456";
// var res =  mystr.mysplit("");
// console.log(res);



// 包装对象  ：底层一个执行过程 
// var arr = {
//     push:function(){
//         console.log("push");
//     }
// }

// // . 语法 是针对于对象的 
// arr.push();

// 复杂数据类型其实就是对象 ，方法会放在原型 原型也可以通过 .语法来调用
// var arr = [1,2,3];
// // console.log(arr);
// arr.push(4);

// 简单数据类型 没有类似对象的各种方法 
// var str = "abcdef";
// console.log(str);
// // 简单数据类型 字符串 数字 布尔 在调用方法的时候 系统会自动把简单数据类型包装成对象
// // 然后再调用方法 最后销毁这个生成的对象
// var arr = str.split("")









</script>
</body>
</html>